package com.exject.android.geobasedsoundmanager.settings;

import com.google.android.maps.GeoPoint;

/**
 * The Interface for the settings file. Abstract from the real implementation.<br/>
 * For every new setting you need to create a new method combination.
 * @author atracura
 */
public interface Settings {
	public static final String CHECK_POSITION_POINT = "CHECK_POSITION_POINT";
	public static final String CHECK_POSITION_ADDRESS = "POSITION_POINT_ADDRESS";

	/**
	 * the start position, only important when isUseStartAddress is false 
	 * @return 
	 */
	public GeoPoint getStartPosition();
	/**
	 * the start position as a address (String), only important when 
	 * isUseStartAddress is true 
	 * @return
	 */
	public String getStartAddress();
	/**
	 * Use the start address, otherwise use the location
	 * @return use as location the address
	 */
	public boolean isUseStartAddress();
	
	/**
	 * the starting point (longitude, latitude), please set the default 
	 * starting point parameter with setUseStartAddress
	 * @param point the starting point 
	 */
	public void setStartPosition(GeoPoint point);
	/**
	 * the starting point as a string, please set the default starting point
	 * parameter with setUseStartAddress
	 * @param address the starting point 
	 */
	public void setStartAddress(String address);
	/**
	 * Sets the default usage
	 * @param useAddress use the address by default
	 */
	public void setUseStartAddress(boolean useAddress);
	
	
	
	/**
	 * Check if setting is set
	 * @param setting the setting to check
	 * @return is the setting set
	 */
	public boolean isSettingSet(String setting);
	
	/**
	 * delete the setting
	 * @param setting the setting to delete
	 */
	public void deleteSetting(String setting);
}